// 后台拦截请求

const db = require('../config/config')
const jsonWebToken = require('jsonwebtoken');
const SECRET_KEY = 'kite1874'
module.exports = {
  login (req, res) {
    let phone = req.body.userPhone
    let password = req.body.password
    let sql = `select userId,username,phone,headImg,uRoleId,roleName from user left join role on user.uRoleId=role.roleId where phone=${phone} and password=${password} `
    db.dbMysql(sql, [], function (err, data) {
      if (data) {
        if (data.length > 0) {
          let roleId = data[0].uRoleId
          let userData = data
          //验证成功，设置token
          const token = jsonWebToken.sign({
            // Payload 部分，官方提供七个字段这边省略，可以携带一些可以识别用户的信息。例如 userId。
            // 千万不要是用敏感信息，例如密码，Payload 是可以解析出来的。
            userId: phone,
          }, SECRET_KEY, {
            expiresIn: "24h", //token有效期
            // expiresIn: 60 * 60 * 24 * 7,  两种写法
            // algorithm:"HS256"  默认使用 "HS256" 算法
          })

          //查询菜单信息
          let sql = ` select menuId as id,name,title,path,component,icon,parentId,isShow from authority as a left join menu as m on m.menuId=a.aMenuId where a.aRoleId=${roleId} `
          db.dbMysql(sql, [], function (err, data) {
            if (data) {
              res.send({
                code: 200,
                data: {
                  user: userData,
                  menu: data
                },
                token: token,
                msg: '查询成功'
              })
            }
          })

        } else {
          res.send({
            code: 201,
            msg: '账号或密码错误'
          })
        }
      } else {
        console.log(err);
      }
    })
  },

}